package api.collection;


import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add(new Point(1, 2));
        c.add(new Point(3, 4));
        c.add(new Point(5, 6));
        c.add(new Point(1, 2));
        c.add(new Point(7, 8));
        c.add(new Point(9, 0));
        c.add(new Point(1,2));
        //[元素1.toString(),元素2.toString,元素3.toString,....]
        //System.out.println(c);//Point没有重写toString[api.collection.Point@3e2, api.collection.Point@422,.....]
        System.out.println(c);//Potin重写toString  [(1,2), (3,4), (5,6), (7,8), (9,0)]

        /*
        boolean contains(Object o):
        判断当前集合是否包含给定元素o
        判断依据是给定元素是否与当前集合存在equals()比较true的情况
        但是Object中的equals()比较的是地址，所以Point判断为false
         */
        Point p=new Point(1,2);
        boolean contains=c.contains(p);
        //System.out.println("是否包含："+contains);//false，判断的是Object中的equals()
        System.out.println("是否包含："+contains);//true  Point重写了Object中的equals()
        /*
        boolean remove(Object o):-------一般都不接收boolean结果
        从当前集合中删除与给定元素0的equals()比较为true的元素
        若存在重复元素则只删一次
         删除集合元素第一次出现的元素，就是从头开始删除
         */
        c.remove(p);//删除集合元素中和equals(p)的第一个元素
        System.out.println(c);
        c.remove(p);
        System.out.println(c);

        Collection cc=new ArrayList();
        Point pp=new Point(1,2);
        cc.add(pp);//将pp中元素的地址添加到pp中，就是将pp添加到cc中----------将pp的引用装到cc中
        System.out.println("pp:"+pp);
        System.out.println("cc:"+cc);

        pp.setX(100);//修改pp中x的元素
        System.out.println("pp:"+pp);
        System.out.println("cc:"+cc);


        Collection c1=new ArrayList();
        c1.add("one");
        c1.add("two");
        c1.add("three");
        c1.add("four");
        c1.add("five");
        //集合重写了Object的toString()方法，返回格式如下：
        //[元素1.toString(),元素2.toString,元素3.toString,....]
        System.out.println(c1);//[one, two, three, four, five]
        c1.add(10);
        c1.add(100);
        System.out.println(c1);//[one, two, three, four, five, 10, 100]
        System.out.println("size:"+c.size());//输出集合的元素个数
        //isEmoty()判断集合是否为空集(size()为0表示空)
        System.out.println("是否为空集："+c1.isEmpty());//false
        //clear()清空集合
        c1.clear();//清空集合
        System.out.println("集合已清空");
        System.out.println(c1);//[]
        System.out.println("size:"+c1.size());//0
        System.out.println("是否为空集："+c1.isEmpty());//true



    }
}
